WCF.Infraction={},WCF.Infraction.Suspension={},WCF.Infraction.Warning={},WCF.Infraction.Warning.Content=Class.extend({_buttons:{},_buttonSelector:"",_dialog:null,_notification:null,_objectID:0,_objectType:"",_userID:0,_proxy:null,init:function(t,n){this._objectType=t||"",this._buttonSelector=n,this._buttons={},this._notification=null,this._objectID=0,this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)}),this._initButtons(),WCF.DOMNodeInsertedHandler.addCallback("WCF.Infraction.Warn"+this._objectType.hashCode(),$.proxy(this._initButtons,this))},_initButtons:function(){var t=this;$(this._buttonSelector).each((function(n,e){var i=$(e),s=i.wcfIdentify();t._buttons[s]||(t._buttons[s]=i,i.click($.proxy(t._click,t)))}))},_click:function(t){t.preventDefault(),this.showDialog($(t.currentTarget).data("userID"),$(t.currentTarget).data("objectID"))},showDialog:function(t,n){this._objectID=n,this._userID=t,this._proxy.setOption("data",{actionName:"prepareWarning",className:"wcf\\data\\user\\infraction\\warning\\UserInfractionWarningAction",parameters:{objectID:this._objectID,objectType:this._objectType,userID:this._userID}}),this._proxy.sendRequest()},_success:function(t,n,e){t.returnValues.warned?(null===this._notification&&(this._notification=new WCF.System.Notification(WCF.Language.get("wcf.infraction.warn.success"))),this._dialog.wcfDialog("close"),this._notification.show()):t.returnValues.template&&(this._showDialog(t.returnValues.template),t.returnValues.alreadyWarned||this._dialog.find(".jsSubmitWarning").click($.proxy(this._submit,this)))},_showDialog:function(t){null===this._dialog&&(this._dialog=$("#infractionWarn"),this._dialog.length||(this._dialog=$('
').hide().appendTo(document.body))),this._dialog.html(t).wcfDialog({title:WCF.Language.get("wcf.infraction.warn")}).wcfDialog("render")},_submit:function(){var t,n,e,i,s,r,a;if($("#infractionWarn .formError").removeClass("formError"),$("#infractionWarn .innerError").remove(),t="",n=0,0,e=0,i=0,s="",r="",a=$("#warningID").val(),-1===parseInt(a,10))return $("#warningID").closest("dl").addClass("formError"),void $("#warningID").after($("").addClass("innerError").text(WCF.Language.get("wcf.global.form.error.empty")));if(0===parseInt(a,10)){if(""==(t=$("#warningTitle").val().trim()))return $("#warningTitle").closest("dl").addClass("formError"),void $("#warningTitle").after($("").addClass("innerError").text(WCF.Language.get("wcf.global.form.error.empty")));if((n=$("#warningPoints").val())<0)return $("#warningPoints").closest("dl").addClass("formError"),void $("#warningPoints").after($("").addClass("innerError").text(WCF.Language.get("wcf.global.form.error.greaterThan",{greaterThan:0})));if(!($("#warningExpiresNever").is(":checked")?1:0)){if(e=$("#warningExpires").val(),s=$("#warningExpiresType").val(),e<1)return $("#warningExpires").closest("dl").addClass("formError"),void $("#warningExpiresType").after($("").addClass("innerError").text(WCF.Language.get("wcf.global.form.error.greaterThan",{greaterThan:1})));i=0,"hours"==s?i=3600*e:"days"==s?i=86400*e:"weeks"==s&&(i=86400*e*7)}}if(""==(r=$("#warningReason").val().trim()))return $("#warningReason").closest("dl").addClass("formError"),void $("#warningReason").after($("").addClass("innerError").text(WCF.Language.get("wcf.global.form.error.empty")));this._dialog.find(".jsSubmitWarning").attr("disabled","disabled"),this._proxy.setOption("data",{actionName:"warn",className:"wcf\\data\\user\\infraction\\warning\\UserInfractionWarningAction",parameters:{reason:r,title:t,points:n,expires:i,warningID:a,objectID:this._objectID,objectType:this._objectType,userID:this._userID}}),this._proxy.sendRequest()}}),WCF.Infraction.Warning.Profile=Class.extend({init:function(t){var n=null;elBySel(".jsButtonWarnUser").addEventListener("click",(function(e){e.preventDefault(),null===n&&(n=new WCF.Infraction.Warning.Content),n.showDialog(~~t)}))}}),WCF.Infraction.Warning.Revoke=Class.extend({_buttonSelector:"",_className:"",_confirmMessage:"",_proxy:null,_rowSelector:"",_successMessage:"",init:function(){this._buttonSelector=".jsButtonWarningRevoke",this._className="wcf\\data\\user\\infraction\\warning\\UserInfractionWarningAction",this._confirmMessage="wcf.infraction.warning.revoke.confirmMessage",this._rowSelector=".jsWarningRow",this._successMessage="wcf.infraction.warning.revoke.success",this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)}),this._bindListener()},_bindListener:function(){$(this._buttonSelector).click($.proxy(this._click,this))},_click:function(t){var n=$(t.currentTarget).parents(this._rowSelector).data("objectID");WCF.System.Confirmation.show(WCF.Language.get(this._confirmMessage),$.proxy((function(t){"confirm"===t&&(this._proxy.setOption("data",{actionName:"revoke",className:this._className,objectIDs:[n]}),this._proxy.sendRequest())}),this))},_success:function(t,n,e){$(this._rowSelector).each($.proxy((function(n,e){var i=$(e);WCF.inArray(i.data("objectID"),t.objectIDs)&&(i.find(this._buttonSelector).addClass("disabled").removeClass("pointer").off("click"),new WCF.System.Notification(WCF.Language.get(this._successMessage)).show())}),this))}}),WCF.Infraction.Suspension.Revoke=WCF.Infraction.Warning.Revoke.extend({_bindListener:function(){this._buttonSelector=".jsButtonSuspensionRevoke",this._className="wcf\\data\\user\\infraction\\suspension\\UserInfractionSuspensionAction",this._confirmMessage="wcf.infraction.suspension.revoke.confirmMessage",this._rowSelector=".jsSuspensionRow",this._successMessage="wcf.infraction.suspension.revoke.success",this._super()}}),WCF.Infraction.Warning.ShowDetails=Class.extend({_cache:{},_dialog:null,_proxy:null,init:function(){this._cache={},this._dialog=null,this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)}),$(".jsInfractionShowDetails").click($.proxy(this._click,this))},_click:function(t){var n=$(t.currentTarget).parents(".jsWarningRow").data("objectID");return void 0===this._cache[n]?(this._proxy.setOption("data",{actionName:"getDetails",className:"wcf\\data\\user\\infraction\\warning\\UserInfractionWarningAction",objectIDs:[n]}),this._proxy.sendRequest()):this._showDetails(n),t.preventDefault(),!1},_showDetails:function(t){null===this._dialog?(this._dialog=$("").hide().appendTo(document.body),this._dialog.html(this._cache[t]).wcfDialog({title:WCF.Language.get("wcf.infraction.warning.details")})):this._dialog.html(this._cache[t]).wcfDialog("open")},_success:function(t,n,e){this._cache[t.returnValues.userWarningID]=t.returnValues.template,this._showDetails(t.returnValues.userWarningID)}});